export default {
    // 1设置命名空间
    namespaced:true,
    // 共享数据
    state:{
        // 是否显示提示框
        isShowToast:false,
        // 提示内容
        toastMsg:'我是vuex提示内容',
        // 提示图标(success danger warning)
        toastType:'warning'
    },
    mutations:{
        // 修改是否显示登录模态框状态
        // 以前:payload :ture/false
        // 现在:payload :{ a:xx,b:xx,c:xx}
        changeIsShowToast(state,payload) {
            // state.isShowToast = payload;
            console.log("修改提示框状态");
            // 提示框显示才更新msg 和 type 加进场离场效果后加个判断能移除留白bug
            state.isShowToast = payload.isShow;
            if(payload.isShow) {
            state.toastMsg=payload.title;
            state.toastType=payload.type;
            }
            //只要显示了提示框，都自动关了
            //但是mutations只能写同步代码。
            //写一个actions方法，实现自动关闭。
            // setTimeout(() => {
            //     this.changeIsShowToast({
            //       isShow: false,
            //     });
            //   }, 2000);           
        }
    },
    actions: {
        //可以写异步代码，跟mutations类型，不能直接修改数据，提交到mutations修改
        asyncShowToast(context, payload) {
            console.log("actions:", payload);
            // 显示提示框
            context.commit("changeIsShowToast", payload);
            // 自动关闭提示框
            setTimeout(() => {
                context.commit("changeIsShowToast", {
                    isShow: false,
                })
            }, 2000);
        }
    }
}